package com.education.course.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.education.common.annotation.Excel;
import com.education.common.core.domain.BaseEntity;

/**
 * 【请填写功能名称】对象 edu_course_order
 * 
 * @author education
 * @date 2024-08-11
 */
public class EduCourseOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNo;

    /** 支付用户id */
    @Excel(name = "支付用户id")
    private Long userId;

    /** 状态1待支付，2学习中，3已取消，4已取消（系统）,5已完成 */
    @Excel(name = "状态1待支付，2学习中，3已取消，4已取消", readConverterExp = "系=统")
    private Integer orderStatus;

    /** 市场价 */
    @Excel(name = "市场价")
    private Long price;

    /** 应付金额 */
    @Excel(name = "应付金额")
    private Long actualPrice;

    /** 实付金额 */
    @Excel(name = "实付金额")
    private Long payPrice;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paytime;

    /** 支付流水号 */
    @Excel(name = "支付流水号")
    private String payNo;

    /** 支付渠道：ALI支付宝  WX微信  EX兑换码兑换 */
    @Excel(name = "支付渠道：ALI支付宝  WX微信  EX兑换码兑换")
    private String payChannel;

    /** 收货省份，若province字段为空，表示无需收货地址 */
    @Excel(name = "收货省份，若province字段为空，表示无需收货地址")
    private String province;

    /** 收货城市 */
    @Excel(name = "收货城市")
    private String city;

    /** 收货县区 */
    @Excel(name = "收货县区")
    private String county;

    /** 收货地址 */
    @Excel(name = "收货地址")
    private String address;

    /** 开始学习天数 */
    @Excel(name = "开始学习天数")
    private Integer startday;

    /** 收货电话 */
    @Excel(name = "收货电话")
    private String phone;

    /** 收货人 */
    @Excel(name = "收货人")
    private String consignee;

    /** 确认收货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "确认收货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date gmtConfirm;

    /** 供应商id 存在该值即说明此订单为供应商开通 */
    @Excel(name = "供应商id 存在该值即说明此订单为供应商开通")
    private Long providerId;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long subjectId;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long subjectDeptId;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long subjectChapterDeptId;

    /** （0正常 1停用） */
    @Excel(name = "", readConverterExp = "0=正常,1=停用")
    private String status;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setOrderNo(String orderNo) 
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo() 
    {
        return orderNo;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setOrderStatus(Integer orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public Integer getOrderStatus() 
    {
        return orderStatus;
    }
    public void setPrice(Long price) 
    {
        this.price = price;
    }

    public Long getPrice() 
    {
        return price;
    }
    public void setActualPrice(Long actualPrice) 
    {
        this.actualPrice = actualPrice;
    }

    public Long getActualPrice() 
    {
        return actualPrice;
    }
    public void setPayPrice(Long payPrice) 
    {
        this.payPrice = payPrice;
    }

    public Long getPayPrice() 
    {
        return payPrice;
    }
    public void setPaytime(Date paytime) 
    {
        this.paytime = paytime;
    }

    public Date getPaytime() 
    {
        return paytime;
    }
    public void setPayNo(String payNo) 
    {
        this.payNo = payNo;
    }

    public String getPayNo() 
    {
        return payNo;
    }
    public void setPayChannel(String payChannel) 
    {
        this.payChannel = payChannel;
    }

    public String getPayChannel() 
    {
        return payChannel;
    }
    public void setProvince(String province) 
    {
        this.province = province;
    }

    public String getProvince() 
    {
        return province;
    }
    public void setCity(String city) 
    {
        this.city = city;
    }

    public String getCity() 
    {
        return city;
    }
    public void setCounty(String county) 
    {
        this.county = county;
    }

    public String getCounty() 
    {
        return county;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setStartday(Integer startday) 
    {
        this.startday = startday;
    }

    public Integer getStartday() 
    {
        return startday;
    }
    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }
    public void setConsignee(String consignee) 
    {
        this.consignee = consignee;
    }

    public String getConsignee() 
    {
        return consignee;
    }
    public void setGmtConfirm(Date gmtConfirm) 
    {
        this.gmtConfirm = gmtConfirm;
    }

    public Date getGmtConfirm() 
    {
        return gmtConfirm;
    }
    public void setProviderId(Long providerId) 
    {
        this.providerId = providerId;
    }

    public Long getProviderId() 
    {
        return providerId;
    }
    public void setSubjectId(Long subjectId) 
    {
        this.subjectId = subjectId;
    }

    public Long getSubjectId() 
    {
        return subjectId;
    }
    public void setSubjectDeptId(Long subjectDeptId) 
    {
        this.subjectDeptId = subjectDeptId;
    }

    public Long getSubjectDeptId() 
    {
        return subjectDeptId;
    }
    public void setSubjectChapterDeptId(Long subjectChapterDeptId) 
    {
        this.subjectChapterDeptId = subjectChapterDeptId;
    }

    public Long getSubjectChapterDeptId() 
    {
        return subjectChapterDeptId;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderNo", getOrderNo())
            .append("userId", getUserId())
            .append("orderStatus", getOrderStatus())
            .append("price", getPrice())
            .append("actualPrice", getActualPrice())
            .append("payPrice", getPayPrice())
            .append("paytime", getPaytime())
            .append("payNo", getPayNo())
            .append("remark", getRemark())
            .append("payChannel", getPayChannel())
            .append("province", getProvince())
            .append("city", getCity())
            .append("county", getCounty())
            .append("address", getAddress())
            .append("startday", getStartday())
            .append("phone", getPhone())
            .append("consignee", getConsignee())
            .append("gmtConfirm", getGmtConfirm())
            .append("providerId", getProviderId())
            .append("subjectId", getSubjectId())
            .append("subjectDeptId", getSubjectDeptId())
            .append("subjectChapterDeptId", getSubjectChapterDeptId())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("status", getStatus())
            .toString();
    }
}
